#include <bits/stdc++.h>
using namespace std;
const int Maxn=1e5+10;
int n,ans=0;
int a[Maxn];
bool vis[Maxn];
bool alive[Maxn];
void init()
{
    cin>>n;
    for(int i=1;i<=n;++i)
    {
        cin>>a[i];
    }
    sort(a+1,a+1+n);
    memset(vis,0,sizeof(vis));
    memset(alive,0,sizeof(alive));
}
void FFF()
{
    for(int i=1;i<=n-1;++i)
    {
        int ft=upper_bound(a+i,a+1+n,a[i])-a;
        if(vis[ft]==1)
        {
            while(vis[ft]==1 && ft!=n+1)
            {
                ft++;
            }
            if(ft!=n+1)
            {
                vis[i]=1;
                vis[ft]=1;
                alive[i]=1;
            }
            else
            {
                break;
            }
        }
        else if(ft!=n+1 && vis[ft]==0)
        {
            vis[i]=1;
            vis[ft]=1;
            alive[i]=1;
        }
    }
}
void node()
{
    for(int i=1;i<=n;i++)
    {
        if(alive[i]==0) ans++;
    }
}
int main()
{
    freopen("duel.in","r",stdin);
    freopen("duel.out","w",stdout);
    init();
    FFF();
    node();
    cout<<ans<<endl;
    return 0;
}
